package br.com.iswe.gwt.ui.client;

import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;

public final class BarraTitulo {

	private BarraTitulo() {
	}

	private static final String PN_BOTOES_DETAIL = "pnBotoesDetail";
	
	public static Widget buildBarraTituloUseCase(String titulo) {
		FlexTable table = new FlexTable();
		//Configura a barra de titulo
		table.setWidth("100%");
		table.setCellPadding(6);
		table.setStyleName("barraTituloUseCase");
		Label lbTitulo = new Label(titulo);
		lbTitulo.setStyleName("titulo");
		table.setWidget(0, 0 , lbTitulo);
		return table;
	}
	
	public static Widget buildBarraLookUp(String titulo, ClickListener listenerFechar) {
		final FlexTable table = new FlexTable();
		Image icone = ISWEImageFactory.getCommonImageBundle().iconeTopico01().createImage();
		Image fechar = ISWEImageFactory.getCommonImageBundle().iconeXFechar().createImage();
		
		table.setStyleName(PN_BOTOES_DETAIL);
		//Titulo
		table.setWidget(0, 0, icone);
		
		table.setWidget(0, 1, new Label(titulo));
		table.getFlexCellFormatter().setAlignment(0, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_MIDDLE);
		table.getFlexCellFormatter().setWidth(0, 1, "90%");
		
		//Fechar
		Button btoFechar = new Button(fechar.toString());
		btoFechar.setStyleName("btoFechar");
		btoFechar.addClickListener(listenerFechar);
		table.setWidget(0, 3, btoFechar);
		table.getFlexCellFormatter().setAlignment(0, 3, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE);
		table.getFlexCellFormatter().setWidth(0, 3, "10%");
		
		return table;
	}

	public static Widget buildBarraSubArea(String titulo) {
		Label lbTitulo = new Label(titulo);
		return buildBarraSubArea(lbTitulo);
	}
	
	public static Widget buildBarraSubArea(Label lbTitulo) {
		final FlexTable table = new FlexTable();
		//Configura a barra de titulo
		table.setWidth("100%");
		table.setCellPadding(4);
		table.setStyleName("barraSubArea");
		//Titulo
		lbTitulo.setStyleName("titulo");
		table.getFlexCellFormatter().setWordWrap(0, 0, false);
		table.setWidget(0, 0 , lbTitulo);
		//Imagem
		Image barra = ISWEImageFactory.getCommonImageBundle().barraHorizontal01().createImage();
		barra.setStyleName("barra");
		table.setWidget(0, 1 , barra);
		table.getFlexCellFormatter().setWidth(0, 1 , "100%");
		return table;
	}
	
	public static Widget buildBarraSubArea2(String titulo) {
		Label lbTitulo = new Label(titulo);
		return buildBarraSubArea2(lbTitulo);
	}
	public static Widget buildBarraSubArea2(Label lbTitulo) {
		final FlexTable table = new FlexTable();
		//Configura a barra de titulo
		table.setWidth("100%");
		table.setCellPadding(2);
		table.setStyleName("barraSubArea");
		//Titulo
		lbTitulo.setStyleName("titulo2");
		table.getFlexCellFormatter().setWordWrap(0, 0, false);
		table.setWidget(0, 0 , lbTitulo);
		return table;
	}
	
	public static Widget buildBarraSubTitulo1(String titulo, final ClickListener listenerPainelFiltro) {
		final FlexTable table = new FlexTable();
		//Configura a barra de titulo
		table.setWidth("100%");
		table.setCellPadding(0);
		table.setCellSpacing(0);
		table.setStyleName("barraSubTitulo1");
		//Label
		Hyperlink lbTitulo = new Hyperlink(titulo, "CRITERIO_BUSCA");
	
		
		//Label lbTitulo = new Label(titulo);
		
		//Adiciona clickListener para esconder e exibir o filtro
		//ao clicar no titulo.
		lbTitulo.addClickListener(listenerPainelFiltro);
		
		lbTitulo.setStyleName("titulo");
		table.setWidget(0, 0 , lbTitulo);
		//Barra
		final Image barraHorizontal = ISWEImageFactory.getCommonImageBundle().barraHorizontal01().createImage();
		
		ClickListener listener = new ClickListener(){
			public void onClick(Widget sender) {
				listenerPainelFiltro.onClick(sender);
			}
		};
		
		barraHorizontal.addClickListener(listener);
		barraHorizontal.setTitle("Fechar Filtro");
		barraHorizontal.setStyleName("barra");
		barraHorizontal.setWidth("90%");
		
		table.setWidget(0, 1 , barraHorizontal);
		table.getFlexCellFormatter().setHorizontalAlignment(0, 1, HasHorizontalAlignment.ALIGN_RIGHT);
		return table;
	}
	
}
